package com.chenhs.oop.study.多线程;

import static java.lang.Thread.sleep;

/**
 * @program: JAVA300
 * @description: 测试线程阻塞
 * sleep（）与 wait（）都是使线程进入到等待状态，区别是sleep不释放cpu资源 wait释放。
 * yield()主动让出。避免一个线程占用cpu时间过久。
 * @author: peanut
 * @create: 2019-07-20 14:35
 */
public class Demo3 implements Runnable {

    @Override
    public void run() {
        System.out.println("当前线程是："+Thread.currentThread().getName());
        for (int i = 0; i < 20; i++) {
            /*当是3的倍数时进入休眠*/
            if (i % 3 == 0) {
                try {
                    sleep(2000);
                    /*sleep（）与 wait（）都是使线程进入到等待状态，区别是sleep不释放cpu资源 wait释放。    */
                    System.out.println("现在运行到"+i+"次了，休息2秒。");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("---线程运行第" + i + "次！---");
        }
    }

    public static void main(String[] args) {
        Demo3 demo3 = new Demo3();
        Thread thread = new Thread(demo3,"我的线程");
        thread.start();
    }
}
